Skip to content

[๐Ÿš€ ์‚ฌ์ดํด2 - ๋ฏธ์…˜ (๋ธ”๋ž™์žญ ๋ฒ ํŒ…)] ๋ผํ‹ฐ ๋ฏธ์…˜ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.#1123

Open
kdongsu5509 wants to merge 130 commits intowoowacourse:kdongsu5509from
kdongsu5509:step2
Open

Conversation

@kdongsu5509
Copy link

์ฒดํฌ ๋ฆฌ์ŠคํŠธ

  • ๋ฏธ์…˜์˜ ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ–ˆ๋‚˜์š”?
  • Gradle test๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ†ต๊ณผํ–ˆ๋‚˜์š”?
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋‚˜์š”?

์–ด๋–ค ๋ถ€๋ถ„์— ์ง‘์ค‘ํ•˜์—ฌ ๋ฆฌ๋ทฐํ•ด์•ผ ํ• ๊นŒ์š”?

์ด๋ฒˆ์— ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋œ BetAmount ๋„๋ฉ”์ธ์€ Player ๊ฐ์ฒด๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ 3๊ฐœ ์ด์ƒ์˜ ์ธ์Šคํ„ด์ˆ˜ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋ง๋ผ๋Š” ์ œํ•œ ์กฐ๊ฑด์„ ์–ด๊ธฐ๋ฉด์„œ ์‹œ๋„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ‘๊ทผ์ด ์ ํ•ฉํ–ˆ์„ ์ง€ ์•„์ง ํ™•์‹ ์„ ๊ฐ€์ง€์ง€๋Š” ๋ชปํ•˜์—ฌ์„œ ์•„์ง ์ฐ์ฐํ•จ์„ ๋А๋ผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฐ ์ฐ์ฐํ•จ์ด ๋А๊ปด์ง€๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ถ€๋ถ„์ด ์กด์žฌํ•˜์ง€๋งŒ ํŠนํžˆ ์ด์ „์—๋Š” Hand ์˜ ์ •๋ณด๋กœ๋งŒ ๊ฒŒ์ž„ ๊ฒฐ๊ณผ๋ฅผ ํŒ๋‹จํ•˜๋ฉด ๋˜์–ด์„œ GameState ๊ฐ€ ๊ด€๋ฆฌํ•˜๋˜ ๊ฒฐ๊ณผ ๋น„๊ต ๋ฉ”์„œ๋“œ๋ฅผ BetAmount ์ •๋ณด๊ฐ€ ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•จ์— ๋”ฐ๋ผ Player ๋กœ ์œ„์น˜๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค๋Š” ์  ๋•Œ๋ฌธ์— ์ด์ „์˜ ์ฑ…์ž„ ๋ถ„๋ฐฐ๊ฐ€ ์ž˜๋ชป๋œ ๊ฒƒ์ธ์ง€ ํ˜น์€ ํ˜„์žฌ์˜ ์ฑ…์ž„์ด ์ž˜๋ชป๋œ ๊ฒƒ์ธ์ง€ ํŒ๋‹จ์ด ์–ด๋ ค์›€ ์ ์ด ๊ฐ€์žฅ ํฐ ์ด์œ ์ž…๋‹ˆ๋‹ค.

๊ทธ ๋‹ค์Œ์— ํ”Œ๋ ˆ์ด์–ด์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋จ์— ๋”ฐ๋ผ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ…Œ์ŠคํŠธ ๋กœ์ง์ด ์ƒ๋‹น ์ˆ˜ ๋ณ€๊ฒฝ๋˜๊ฒŒ ๋  ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•˜์—ฌ, ํ˜„์žฌ์˜ ๋ฐฉ์‹์ธ BetAmount.empty() ๋ฅผ ํ†ตํ•œ 0 ๊ฐ’์„ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ์ž์™€, bet() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ž…๋ ฅ๋ฐ›์€ ๊ธˆ์•ก์„ ๊ฐ€์ง„ ์ƒˆ๋กœ์šด BetAmount ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ €๋Š” ํ…Œ์ŠคํŠธ ๋ณ€๊ฒฝ์„ ํ”ผํ•  ์ˆ˜ ์žˆ๊ณ , ์ถ”๊ฐ€๋กœ ๋ถˆ๋ณ€ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ดœ์ฐฎ์„ ๊ฒƒ์ด๋‹ค๋ผ๋Š” ํŒ๋‹จ์„ ํ•˜์—ฌ์„œ ์‹œ๋„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.


์ถ”๊ฐ€์ ์œผ๋กœ ์ด์ „ step1 ์—์„œ ๋ฆฌ๋ทฐ์–ด๋‹˜์ด ๋‚จ๊ฒจ์ฃผ์‹  ๋ฆฌ๋ทฐ๋ฅผ ์„  ๋ฐ˜์˜์„ ํ•ด๋ณด๋‹ˆ ์ด๋ฒˆ ๋ฒ ํŒ…ํ•˜๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์‹œ ๊ธฐ์กด์˜ ํด๋ž˜์Šค๋“ค๊ณผ ํ๋ฆ„์„ ์ƒ๋‹นํžˆ ํŽธํ•˜๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜์ด ๋•๋ถ„์— ๊ฐ์ฒด ์ง€ํ–ฅ์—์„œ๋„ ์ฝ๊ธฐ ์‰ฌ์›€ ์ฝ”๋“œ์˜ ์ค‘์š”์„ฑ์„ ๋†“์น˜๋ฉด ์•ˆ๋˜๊ฒ ๋‹ค๋ผ๋Š” ์ƒ๊ฐ ์—ญ์‹œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋”œ๋Ÿฌ์™€ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€๊ณ , ๊ทธ๋“ค์˜ ๊ณตํ†ต ์กฐ์ƒ์ธ ์ฐธ๊ฐ€์ž๋ฅผ ์ถ”๊ฐ€ํ•จ.
์ดํ›„ ์นด๋“œ์™€ ์นด๋“œ๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฑ์˜ ์ •์˜๋ฅผ ์ถ”๊ฐ€ํ•จ.
- ์‹ ๊ทœ ๋ฑ ์ œ๊ณต ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ
- ์นด๋“œ ๋ฝ‘๊ธฐ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€(์ •์ƒ, ์‹คํŒจ)
- ์ƒˆ๋กœ์šด ๋ฑ ์ œ๊ณต ๊ธฐ๋Šฅ
- ์นด๋“œ ์„ ํƒ ๊ธฐ๋Šฅ
์„ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
Ace ๊ฐ’ ํŒ์ •๊ณผ ์ „์ฒด ์นด๋“œ ์ ์ˆ˜ ํ•ฉ ๊ธฐ๋Šฅ์€ ์ƒํ˜ธ ์˜์กด์„ฑ์„ ๋„๊ธฐ ๋•Œ๋ฌธ์— Ace๋Š” ์ œ์™ธํ•œ ์นด๋“œ ์ ์ˆ˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•จ.
- add card score total sum feature
- add bust discrimination feature
๋”œ๋Ÿฌ ์ƒ์„ฑ ์‹œ ํ•„์š”ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ Deck์˜ ์ธ์Šคํ„ด์Šค ์ข…๋ฅ˜๋ฅผ ๋ช…์‹œํ•จ
๊ณตํ†ต ๋กœ์ง์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด participant ์ถ”๊ฐ€
๋”œ๋Ÿฌ๋งŒ์˜ ๊ณ ์œ ํ•œ ์นด๋“œ ์ถ”๊ฐ€ ๋กœ์ง์„ ์œ„ํ•ด ๋ณ„๋„์˜ ๋ฉ”์„œ๋“œ๊ฐ€ ์„ ์–ธ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐจํ›„ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ addCard ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ ํ˜„์žฌ ์„ค๊ณ„์ƒ์œผ๋กœ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— UnsupportedOperationException์„ ๋˜์ง€๋Š” ๊ฒƒ์œผ๋กœ override ํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค
- ์ฃผ์„ ์ฒ˜๋ฆฌ ํ•ด์ œ
- ์‚ฌ๋ผ์ง„ ๋ฉ”์„œ๋“œ์˜ ํ…Œ์ŠคํŠธ ๋กœ์ง ์ œ๊ฑฐ
- ์ถ”๊ฐ€๋œ drawTwoCards ๋ฉ”์„œ๋“œ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
- ๊ธฐ์กด ์ฝ”๋“œ ์ฃผ์„ ํ•ด์ œ
- ์ด์ „์˜ ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ํ…Œ์ŠคํŠธ ๋กœ์ง ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ ์ด๋ฆ„ ์ˆ˜์ •
MVC ๊ตฌ์กฐ์—์„œ delegate ์—†์ด๋„ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํŒ๋‹จ ํ›„ delegate ํŒจํ„ด์ด ๊ณผํ•˜๋‹ค ํŒ๋‹จํ•˜์—ฌ ์ œ๊ฑฐ
- ๊ธฐ์กด์˜ ํ๋ฆ„์„ ํ†ต์ œํ•˜๋Š” ๋กœ์ง์ด ๋ณ€๊ฒฝ. Game์€ ๋‚ด๋ถ€ ๋„๋ฉ”์ธ๋“ค ์‚ฌ์ด๋ฅผ ์ค‘์žฌํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๊ฒŒ ๋˜์—ˆ์Œ.
- ์ด์— ๋”ฐ๋ผ game์˜ ์ด๋ฆ„ ๋ฐ ๋กœ์ง์ด ๋Œ€ํญ ๋ณ€๊ฒฝ๋จ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ
- ์ „์ฒด ํ๋ฆ„์„ ์ฃผ๊ด€ํ•˜๋Š” ์ฑ…์ž„์„ ๋‹ค์‹œ ๋ถ€์—ฌ
- ์ด์— ๋”ฐ๋ฅธ ํ…Œ์ŠคํŠธ ๋กœ์ง ๋ณ€๊ฒฝ
- ํ…Œ์ŠคํŠธ์—์„œ mock ์ œ๊ฑฐ. ์ตœ๋Œ€ํ•œ ์ˆœ์ˆ˜ ์ž๋ฐ”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ
์—ญํ• ์ด ๋ถ„๋ฆฌ๋จ์— ๋”ฐ๋ผ ํ…Œ์ŠคํŠธ ๋กœ์ง ๋ณ€๊ฒฝ
- ๋ชจ๋“  ์›์‹œ ๊ฐ’๊ณผ ๋ฌธ์ž์—ด์„ ํฌ์žฅํ•œ๋‹ค๋ผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ 3๊ฐœ ์ด์ƒ์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง„ ํด๋ž˜์Šค๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค๋ผ๋Š” ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ์ƒํƒœ ํŒจํ„ด ๋„์ž…
๋กœ์ปฌ รฌยฝ์ฝ”๋“œ๋ฅผ ๋ณ‘ํ•ฉํ•˜์ง€ ์•Š๊ณ  ์ง„ํ–‰ํ•œ ์ˆ˜์ •์œผ๋กœ ์ธํ•œ ์ถฉ๋Œ ํ•ด๊ฒฐ
์ฐพ๊ธฐ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋ณ€๊ฒฝ. ํ˜„์žฌ๋Š” n=5๋ผ๋Š” ์กฐ๊ฑด ๋•Œ๋ฌธ์— ์ฐพ๊ธฐ ์‹œ ์„ฑ๋Šฅ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜์œผ๋‚˜, ์ด ๋˜ํ•œ ๋ณ€๊ฒฝ๊ฐ€๋Šฅํ•œ ์š”๊ตฌ์‚ฌํ•ญ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•จ
๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„ game state ๊ตฌ์กฐ ์ •๋ฆฌ
- ํผ๋ธ”๋ฆญ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์—ฌ ๊ฐ์ฒด๋ณ„ ์ฑ…์ž„์„ ํ•œ ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฆฌํ•˜์˜€์Œ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants